Operating systems (OSs) of a computer typically do not allow a single hardware device to be shared among multiple applications at the same time. For example, a first application can be selected to consume data (such as frame data) produced by a given hardware device, such as a camera of the computer. Once the first application begins using the camera, no other applications can use the camera at the same time as the first application. However, if the hardware resource can be shared among multiple software applications running on the computer, the computer can have a reduced component count and/or increased functionality.